﻿using DimensionsHelper.Common.Contracts.Services;

namespace DimensionsHelper.Common.Contracts;

public interface IProjectBase<T> : IProjectService where T : class, new()
{
    /// <summary>
    ///     获取当前项目对象使用的配置对象。
    /// </summary>
    T Settings { get; }

    /// <summary>
    ///     读取指定配置对象的配置数据并设置为当前配置。
    /// </summary>
    /// <param name="settings">给定配置对象</param>
    /// <returns>如果读取成功，返回true，否则，返回false。</returns>
    bool LoadSettings(T settings);

    /// <summary>
    ///     读取指定JSON配置文件并设置为当前配置。如果读取成功
    /// </summary>
    /// <param name="jsonFile">给定配置JSON文件路径。</param>
    /// <returns>，返回true，否则，返回false。</returns>
    bool LoadSettings(string jsonFile);
}